/* Copyright 2001,2002,2003 NAH6 BV
 * All Rights Reserved
 *
 *  $Header: /var/lib/cvs/secphone/ui/controls/Label.h,v 1.4 2003/11/21 12:39:24 itsme Exp $
 *
 *
 * see http://www.codeproject.com/staticctrl/clabel.asp
 * or http://codeguru.earthweb.com/staticctrl/label_static.shtml
 */


#if !defined(AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_)
#define AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include <afxwin.h>

/////////////////////////////////////////////////////////////////////////////
// CLabel window
enum FlashType {None, Text, Background };

class CLabel : public CStatic
{
// Construction
public:
    CLabel();
    CLabel& SetBkColor(COLORREF crBkgnd);
    CLabel& SetTextColor(COLORREF crText);
    CLabel& SetText(const CString& strText);
    CLabel& SetFontBold(BOOL bBold);
    CLabel& SetFontName(const CString& strFont);
    CLabel& SetFontUnderline(BOOL bSet);
    CLabel& SetFontItalic(BOOL bSet);
    CLabel& SetFontSize(int nSize);
    CLabel& SetSunken(BOOL bSet);
    CLabel& SetBorder(BOOL bSet);
    CLabel& FlashText(BOOL bActivate);
    CLabel& FlashBackground(BOOL bActivate);
    CLabel& SetLink(BOOL bLink);
    CLabel& SetLinkCursor(HCURSOR hCursor);

// Attributes
public:
protected:
    void ReconstructFont();
    COLORREF    m_crText;
    HBRUSH      m_hBrush;
    HBRUSH      m_hwndBrush;
    LOGFONT     m_lf;
    CFont       m_font;
    CString     m_strText;
    BOOL        m_bState;
    BOOL        m_bTimer;
    BOOL        m_bLink;
    FlashType   m_Type;
    HCURSOR     m_hCursor;
            // Operations
public:
// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CLabel)
    //}}AFX_VIRTUAL

// Implementation
public:
    virtual ~CLabel();

    // Generated message map functions
protected:
    //{{AFX_MSG(CLabel)
    afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
    afx_msg void OnTimer(UINT nIDEvent);
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_)
